package cn.dyp.com.getnotification;

import android.app.Application;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.preference.PreferenceManager;

import cn.dyp.com.getnotification.util.Util;

//程序启动的入口 提供全局的数据存储

/*
【<application>android:name】android系统会为每个程序运行时创建一个Application类的对象且仅创建一个，
默认是android.app.Application，也可以自定义一个类继承自Application，放一些全局的和一些上下文都要用到变量和方法。
 */

public class ClientApp extends Application {
    private SharedPreferences mSharedPreferences;
    private String serverIpStr = "";

    @Override
    public void onCreate() {
        super.onCreate();
        mSharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
    }

    /**
     * 获取Ip地址
     *
     * @return Ip地址
     */
    public String getServerIpStr() {
        serverIpStr = readIpStr();
        if (serverIpStr.equals("")) {
            try {
                serverIpStr = Util.getLocalIpAddress(this);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        return serverIpStr;
    }

    /**
     * 保存用户输入的Ip
     *
     * @param serverIpStr
     *            用户输入Ip
     */
    public void setServerIpStr(String serverIpStr) {
        this.serverIpStr = serverIpStr;
        saveIpStr(this.serverIpStr);
    }

    /**
     * 从配置文件中获取存入的Ip
     *
     * @return Ip地址
     */
    private String readIpStr() {
        return mSharedPreferences.getString("IpStr", "");
    }

    /**
     * 将Ip地址存入配置文件中
     *
     * @param ipStr
     *            Ip地址
     */
    private void saveIpStr(String ipStr) {
        Editor editor = mSharedPreferences.edit();
        editor.putString("IpStr", ipStr);
        editor.commit();
    }
}